package 华为OD机试真题2023.基础题;

import utils.MyUtil;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class HJ44_新员工座位安排系统 {
    public static void main(String[] args) throws FileNotFoundException {
        //方法一：一般般
//        Scanner in = new Scanner(new File("src/main/java/华为OD机试真题2023/基础题/input/44.txt"));
//        MyUtil.START();
//        String[] sArray = in.nextLine().split(" ");
//        List<Integer> newList = new ArrayList<>();
//        int tmp = 0;
//        for (String s : sArray) {
//            if ("1".equals(s)) {
//                tmp++;
//            } else if ("0".equals(s)) {
//                if (tmp != 0) {
//                    newList.add(tmp);
//                    tmp = 0;
//                }
//                newList.add(0);
//            } else if ("2".equals(s)) {
//                if (tmp != 0) {
//                    newList.add(tmp);
//                    tmp = 0;
//                }
//                newList.add(-1);
//            }
//        }
//        int res = Integer.MIN_VALUE;
//        for (int i = 0; i < newList.size(); i++) {
//            if (i == 0 && newList.get(1) != 0) {
//                res = Math.max(newList.get(1), res);
//            } else if (i == newList.size() - 1 && newList.get(newList.size() - 2) != 0) {
//                res = Math.max(newList.get(newList.size() - 2), res);
//            } else if (newList.get(i) == 0) {
//                int left = newList.get(i - 1);
//                int right = newList.get(i + 1);
//                left = Math.max(left, 0);
//                right = Math.max(right, 0);
//                res = Math.max(left + right, res);
//            }
//        }
//        System.out.println(res);
//        MyUtil.END();

        //方法二：容易理解
        Scanner in = new Scanner(new File("src/main/java/华为OD机试真题2023/基础题/input/44.txt"));
        MyUtil.START();
        String[] sArray = in.nextLine().split(" ");
        int left = 0, right = 0, max = Integer.MIN_VALUE;
        for (int i = 0; i < sArray.length; i++) {
            if ("2".equals(sArray[i])) {
                left = 0;
            } else if ("1".equals(sArray[i])) {
                left++;
            } else if ("0".equals(sArray[i])) {
                int j;
                for (j = i + 1; j < sArray.length; j++) {
                    if ("1".equals(sArray[j])) {
                        right++;
                    } else {
                        break;
                    }
                }
                max = Math.max(left + right, max);
                i += right;
                left = 0;
                right = 0;
            }
        }
        System.out.println(max);
        MyUtil.END();
    }
}
